1. Technical Field
The present invention generally relates to computer network systems and in particular to client-server computer networks. Still more particularly, the present invention relates to client-server determination in client-server computer networks.
2. Description of the Related Art
Most multi-client collaborative applications are provided via a standard topology in which a dedicated server (computer system) is provided to support core server-level functions of the executing application(s). In this topology, each of the clients accessing the application(s) connects to the dedicated server and interacts directly with the dedicated server. IBM Lotus Notes® is a well known example of such an application.
With some more conventional collaborative applications, however, the applications relies on a client-server topology by which one of the “client” computer systems assumes the role of and operates as the “server” for other clients. One example of such applications is online gaming. There are many online games in which the gaming application is written such that the computer system of the person who initiates a “gameroom”, for example, takes the role of the server of the gaming application. Further, many online game servers are really used to direct a number of players/clients to a client-server which, in reality, is a home PC of a user/player spawning/running the game's server-type functions.
These interactive software applications typically require the client-server provide certain processing and network connection capabilities, which may place a heavy burden on the client-server. Utilizing a client-server which does not provide the required capabilities results in the application executing below an ideal operating level and negatively affecting the experience of the other clients.
Each client participating in the interactive environment may have different system capabilities. Thus, it is not uncommon for the client-server to have inferior system capabilities compared to one or more of the other clients participating in the interactive application. However, since the client-server is the initiator of the server-level functions of the application, the client-server retains control of the execution of the application during an ongoing session.